With ever-increasing demand for flexibility in introducing new product offerings, many industries, including the insurance industry, require software sufficiently dynamic to allow for adding new products and new properties of existing products without major alteration to their internal computer systems. In the current state, these computer systems have embedded products, product properties, and conditions by which the two are related, directly into program logic. This approach typically requires software rewrites or significant software upgrades as new product offerings or product properties are developed and introduced. These modifications to the programming infrastructure can create lengthy delays in bringing new products to market.